import java.util.Scanner;
//给定一个非空整数数组，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。
public class Question6 {

    public static void main(String[] args) {

        //int[] arr = {1,1,2,2,3,3,4,5,5};

        int n = 0;//数组维



        Scanner sc = new Scanner(System.in);

        System.out.println("请输入数组的元素个数：");
        n = sc.nextInt();
        int[] arr = new int[n];

        System.out.println("请输入要查找的数组组成：(ctrl+d,结束输入)");
        int i = 0;
        while (sc.hasNextInt()) {

            arr[i] = sc.nextInt();
            i++;

        }


        int order = search(arr);

        System.out.println("只出现了一次的元素为：" + arr[order]);

    }

    public static int search(int[] arr){

        //
        int i = 0;
        int j = arr.length-1;
        for(i = 0;i < arr.length;i++){

            int tmp = arr[i];
            int count = 0;//注意这个局部标量放置的位置，关系到他的作用范围，何时销毁
                          //调试得知，外层循环有arr.length趟，结束一趟，count随之销毁
                          //新的一趟，循环体执行到count的创建，再创建一个count，并按代码赋初值为0
                          //所以，count的作用范围为循环体内部（体！！！）

            for(j = 0;j < arr.length;j++){

                if(tmp == arr[j]){
                    count++;
                }


            }
            if(count == 1){//原数组中只找到一个，那么就是这个在原数组中只出现了一次

                return i;

            }


        }
        return -1;//会找到的，但是，不写上不符合Java的安全性，编译不通过

    }

}
